home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / library / reqtlsdv.lha / ReqTools / demo / demo.asm next >
Assembly Source File  |  1994-01-02  |  20KB  |  1,030 lines

  1. **********************************
  2. *                                *
  3. *  reqtools.library (V38)        *
  4. *                                *
  5. *  Release 2.2                   *
  6. *                                *
  7. *  (c) 1991-1994 Nico François   *
  8. *                                *
  9. *  Assembly version by           *
  10. *  Dirk Vangestel                *
  11. *                                *
  12. *  demo.asm                      *
  13. *                                *
  14. *  This source is public domain  *
  15. *  in all respects.              *
  16. *                                *
  17. **********************************
  18.  
  19.     INCLUDE    "exec/funcdef.i"
  20.     INCLUDE    "exec/exec_lib.i"
  21.     INCLUDE    "exec/libraries.i"
  22.     INCLUDE    "libraries/dos_lib.i"
  23.     INCLUDE    "libraries/reqtools.i"
  24.     INCLUDE    "libraries/reqtools_lib.i"
  25.     INCLUDE    "utility/tagitem.i"
  26.     INCLUDE    "intuition/intuition.i"
  27.  
  28. FALSE    equ    0        ;dummy for C-compatibility
  29. TRUE    equ    1
  30.  
  31. start
  32.     move.l    $4.w,a6
  33.     lea    ReqName(pc),a1
  34.     move.l    #REQTOOLSVERSION,d0
  35.     jsr    _LVOOpenLibrary(a6)
  36.     move.l    d0,ReqBase
  37.     beq.w    NoReqtools
  38.     move.l    d0,a6
  39.  
  40.     lea    Text1(pc),a1
  41.     lea    Text2(pc),a2
  42.     sub.l    a3,a3
  43.     sub.l    a4,a4
  44.     sub.l    a0,a0
  45.     jsr    _LVOrtEZRequestA(a6)
  46.  
  47.     lea    Text3(pc),a1
  48.     lea    Text4(pc),a2
  49.     sub.l    a3,a3
  50.     sub.l    a4,a4
  51.     sub.l    a0,a0
  52.     jsr    _LVOrtEZRequestA(a6)
  53.  
  54.     lea    Text5(pc),a1
  55.     lea    Text6(pc),a2
  56.     sub.l    a3,a3
  57.     sub.l    a4,a4
  58.     sub.l    a0,a0
  59.     jsr    _LVOrtEZRequestA(a6)
  60.  
  61.     lea    Buffer(pc),a1
  62.     lea    Text7(pc),a0
  63. .loop1
  64.     move.b    (a0)+,(a1)+
  65.     bne.s    .loop1
  66.     moveq    #127,d0
  67.     lea    Buffer(pc),a1
  68.     lea    Text8(pc),a2
  69.     sub.l    a3,a3
  70.     move.l    #TAG_END,a0
  71.     jsr    _LVOrtGetStringA(a6)
  72.     tst.l    d0
  73.     bne.s    .input1
  74.     lea    Text9(pc),a1
  75.     lea    Text10(pc),a2
  76.     sub.l    a3,a3
  77.     sub.l    a4,a4
  78.     sub.l    a0,a0
  79.     jsr    _LVOrtEZRequestA(a6)
  80.     bra.s    .ok1
  81. .input1
  82.     lea    Text11(pc),a1
  83.     lea    Text12(pc),a2
  84.     sub.l    a3,a3
  85.     lea    Buffer(pc),a0
  86.     lea    Array(pc),a4
  87.     move.l    a0,(a4)
  88.     sub.l    a0,a0
  89.     jsr    _LVOrtEZRequestA(a6)
  90. .ok1
  91.  
  92.     lea    Buffer(pc),a1
  93.     moveq    #127,d0
  94.     lea    Text8(pc),a2
  95.     sub.l    a3,a3
  96.     lea    Tags1(pc),a0
  97.     jsr    _LVOrtGetStringA(a6)
  98.     subq    #2,d0
  99.     bne.s    .ok2
  100.     lea    Text13(pc),a1
  101.     lea    Text14(pc),a2
  102.     sub.l    a3,a3
  103.     sub.l    a4,a4
  104.     sub.l    a0,a0
  105.     jsr    _LVOrtEZRequestA(a6)
  106. .ok2
  107.  
  108.     lea    Buffer(pc),a1
  109.     moveq    #127,d0
  110.     lea    Text8(pc),a2
  111.     sub.l    a3,a3
  112.     lea    Tags2(pc),a0
  113.     jsr    _LVOrtGetStringA(a6)
  114.     subq    #2,d0
  115.     bne.s    .ok3
  116.     lea    Text15(pc),a1
  117.     lea    Text16(pc),a2
  118.     sub.l    a3,a3
  119.     sub.l    a4,a4
  120.     sub.l    a0,a0
  121.     jsr    _LVOrtEZRequestA(a6)
  122. .ok3
  123.  
  124.     lea    Text17(pc),a1
  125.     lea    Text6(pc),a2
  126.     sub.l    a3,a3
  127.     sub.l    a4,a4
  128.     sub.l    a0,a0
  129.     jsr    _LVOrtEZRequestA(a6)
  130.  
  131.     lea    LongNum(pc),a1
  132.     lea    Text18(pc),a2
  133.     sub.l    a3,a3
  134.     lea    Tags3(pc),a0
  135.     jsr    _LVOrtGetLongA(a6)
  136.     tst.l    d0
  137.     bne.s    .input2
  138.     lea    Text9(pc),a1
  139.     lea    Text10(pc),a2
  140.     sub.l    a3,a3
  141.     sub.l    a4,a4
  142.     sub.l    a0,a0
  143.     jsr    _LVOrtEZRequestA(a6)
  144.     bra.s    .ok5
  145. .input2
  146.     lea    Text19(pc),a1
  147.     lea    Text20(pc),a2
  148.     sub.l    a3,a3
  149.     lea    Array(pc),a4
  150.     move.l    LongNum(pc),d0
  151.     move.l    d0,(a4)+
  152.     cmpi.l    #666,d0
  153.     bne.s    .nodevil
  154.     lea    Text21(pc),a0
  155.     move.l    a0,(a4)+
  156.     bra.s    .ok4
  157. .nodevil
  158.     lea    Null(pc),a0
  159.     move.l    a0,(a4)+
  160. .ok4
  161.     lea    Array(pc),a4
  162.     sub.l    a0,a0
  163.     jsr    _LVOrtEZRequestA(a6)
  164. .ok5
  165.  
  166.     lea    Text22(pc),a1
  167.     lea    Text23(pc),a2
  168.     sub.l    a3,a3
  169.     sub.l    a4,a4
  170.     sub.l    a0,a0
  171.     jsr    _LVOrtEZRequestA(a6)
  172.  
  173.     lea    Text24(pc),a1
  174.     lea    Text25(pc),a2
  175.     sub.l    a3,a3
  176.     sub.l    a4,a4
  177.     sub.l    a0,a0
  178.     jsr    _LVOrtEZRequestA(a6)
  179.  
  180. .ret
  181.     lea    Text26(pc),a1
  182.     lea    Text27(pc),a2
  183.     sub.l    a3,a3
  184.     sub.l    a4,a4
  185.     sub.l    a0,a0
  186.     jsr    _LVOrtEZRequestA(a6)
  187.     tst.l    d0
  188.     bne.s    .ok6
  189.     lea    Text28(pc),a1
  190.     lea    Text29(pc),a2
  191.     sub.l    a3,a3
  192.     sub.l    a4,a4
  193.     sub.l    a0,a0
  194.     jsr    _LVOrtEZRequestA(a6)
  195.     bra.s    .ret
  196. .ok6
  197.     lea    Text30(pc),a1
  198.     lea    Text31(pc),a2
  199.     sub.l    a3,a3
  200.     sub.l    a4,a4
  201.     sub.l    a0,a0
  202.     jsr    _LVOrtEZRequestA(a6)
  203.  
  204.     lea    Text32(pc),a1
  205.     lea    Text33(pc),a2
  206.     sub.l    a3,a3
  207.     sub.l    a4,a4
  208.     sub.l    a0,a0
  209.     jsr    _LVOrtEZRequestA(a6)
  210.     cmpi.l    #FALSE,d0
  211.     bne.s    .ok7
  212.     lea    Text34(pc),a1
  213.     lea    Text35(pc),a2
  214.     bra.s    .ok9
  215. .ok7
  216.     cmpi.l    #TRUE,d0
  217.     bne.s    .ok8
  218.     lea    Text36(pc),a1
  219.     lea    Text31(pc),a2
  220.     bra.s    .ok9
  221. .ok8
  222.     lea    Text37(pc),a1
  223.     lea    Text38(pc),a2
  224. .ok9
  225.     sub.l    a3,a3
  226.     sub.l    a4,a4
  227.     sub.l    a0,a0
  228.     jsr    _LVOrtEZRequestA(a6)
  229.  
  230.     lea    Text39(pc),a1
  231.     lea    Text40(pc),a2
  232.     sub.l    a3,a3
  233.     sub.l    a4,a4
  234.     lea    Tags4(pc),a0
  235.     jsr    _LVOrtEZRequestA(a6)
  236.     lea    Text41(pc),a1
  237.     lea    Text42(pc),a2
  238.     sub.l    a3,a3
  239.     sub.l    a0,a0
  240.     lea    Array(pc),a4
  241.     move.l    d0,(a4)
  242.     jsr    _LVOrtEZRequestA(a6)
  243.  
  244.     lea    Text43(pc),a1
  245.     lea    Text44(pc),a2
  246.     sub.l    a3,a3
  247.     sub.l    a4,a4
  248.     lea    Tags5(pc),a0
  249.     jsr    _LVOrtEZRequestA(a6)
  250.  
  251.     lea    Text45(pc),a1
  252.     lea    Text46(pc),a2
  253.     sub.l    a3,a3
  254.     lea    Array(pc),a4
  255.     move.l    #5,(a4)+
  256.     lea    Buffer(pc),a0
  257.     move.l    a0,(a4)+
  258.     move.l    #"five",(a0)+
  259.     clr.b    (a0)+
  260.     lea    Array(pc),a4
  261.     lea    Tags5(pc),a0
  262.     jsr    _LVOrtEZRequestA(a6)
  263.  
  264.     lea    Text47(pc),a1
  265.     lea    Text48(pc),a2
  266.     sub.l    a3,a3
  267.     sub.l    a4,a4
  268.     lea    Tags6(pc),a0
  269.     jsr    _LVOrtEZRequestA(a6)
  270.     cmpi.l    #DISKINSERTED,d0
  271.     bne.s    .ok10
  272.     lea    Text49(pc),a1
  273.     bra.s    .ok11
  274. .ok10
  275.     lea    Text50(pc),a1
  276. .ok11
  277.     lea    Text51(pc),a2
  278.     sub.l    a3,a3
  279.     sub.l    a4,a4
  280.     sub.l    a0,a0
  281.     jsr    _LVOrtEZRequestA(a6)
  282.  
  283.     lea    Text52(pc),a1
  284.     lea    Text53(pc),a2
  285.     sub.l    a3,a3
  286.     sub.l    a4,a4
  287.     lea    Tags7(pc),a0
  288.     jsr    _LVOrtEZRequestA(a6)
  289.  
  290.     lea    Text54(pc),a1
  291.     lea    Text55(pc),a2
  292.     sub.l    a3,a3
  293.     sub.l    a4,a4
  294.     lea    Tags8(pc),a0
  295.     jsr    _LVOrtEZRequestA(a6)
  296.  
  297.     lea    Text56(pc),a1
  298.     lea    Text57(pc),a2
  299.     sub.l    a3,a3
  300.     sub.l    a4,a4
  301.     lea    Tags5(pc),a0
  302.     jsr    _LVOrtEZRequestA(a6)
  303.  
  304.     move.l    #RT_FILEREQ,d0
  305.     sub.l    a0,a0
  306.     jsr    _LVOrtAllocRequestA(a6)
  307.     move.l    d0,filereq
  308.     bne.s    .ok12
  309.     lea    Text58(pc),a1
  310.     lea    Text14(pc),a2
  311.     sub.l    a3,a3
  312.     sub.l    a4,a4
  313.     sub.l    a0,a0
  314.     jsr    _LVOrtEZRequestA(a6)
  315.     bra.w    .ok13
  316. .ok12
  317.     move.l    filereq(pc),a1
  318.     lea    filename(pc),a2
  319.     clr.b    (a2)
  320.     lea    Text59(pc),a3
  321.     sub.l    a0,a0
  322.     jsr    _LVOrtFileRequestA(a6)
  323.     tst.l    d0
  324.     beq.s    .ok14
  325.     lea    Text60(pc),a1
  326.     lea    Text61(pc),a2
  327.     sub.l    a3,a3
  328.     lea    Array(pc),a4
  329.     lea    filename(pc),a0
  330.     move.l    a0,(a4)+
  331.     move.l    filereq(pc),a0
  332.     move.l    rtfi_Dir(a0),(a4)+
  333.     lea    Array(pc),a4
  334.     bra.s    .ok15
  335. .ok14
  336.     lea    Text62(pc),a1
  337.     lea    Text63(pc),a2
  338.     sub.l    a3,a3
  339.     sub.l    a4,a4
  340. .ok15
  341.     sub.l    a0,a0
  342.     jsr    _LVOrtEZRequestA(a6)
  343.  
  344.     lea    Text64(pc),a1
  345.     lea    Text65(pc),a2
  346.     sub.l    a3,a3
  347.     sub.l    a4,a4
  348.     lea    Tags5(pc),a0
  349.     jsr    _LVOrtEZRequestA(a6)
  350.  
  351.     move.l    filereq(pc),a1
  352.     lea    filename(pc),a2
  353.     lea    Text66(pc),a3
  354.     lea    Tags9(pc),a0
  355.     jsr    _LVOrtFileRequestA(a6)
  356.     move.l    d0,flist
  357.     beq.s    .ok16
  358.     lea    Text67(pc),a1
  359.     lea    Text68(pc),a2
  360.     sub.l    a3,a3
  361.     lea    Array(pc),a4
  362.     move.l    flist(pc),a0
  363.     move.l    rtfl_Name(a0),(a4)
  364.     sub.l    a0,a0
  365.     jsr    _LVOrtEZRequestA(a6)
  366.  
  367. ;Traverse all selected files.
  368. ;This is not tested, but should work fine!
  369. ;    move.l    flist(pc),a0
  370. ;.next
  371. ;    move.l    rtfl_Name(a0),filename
  372. ;    move.l    rtfl_StrLen(a0),length
  373. ;    move.l    rtfl_Next(a0),a0
  374. ;    bne.s    .next
  375.  
  376.     move.l    flist(pc),a0
  377.     jsr    _LVOrtFreeFileList(a6)
  378. .ok16
  379.     move.l    filereq(pc),a1
  380.     jsr    _LVOrtFreeRequest(a6)
  381. .ok13
  382.  
  383.     lea    Text69(pc),a1
  384.     lea    Text70(pc),a2
  385.     sub.l    a3,a3
  386.     sub.l    a4,a4
  387.     lea    Tags5(pc),a0
  388.     jsr    _LVOrtEZRequestA(a6)
  389.  
  390.     move.l    #RT_FILEREQ,d0
  391.     sub.l    a0,a0
  392.     jsr    _LVOrtAllocRequestA(a6)
  393.     move.l    d0,filereq
  394.     bne.s    .ok17
  395.     lea    Text58(pc),a1
  396.     lea    Text14(pc),a2
  397.     sub.l    a3,a3
  398.     sub.l    a4,a4
  399.     sub.l    a0,a0
  400.     jsr    _LVOrtEZRequestA(a6)
  401.     bra.w    .ok18
  402. .ok17
  403.     move.l    filereq(pc),a1
  404.     lea    filename(pc),a2
  405.     clr.b    (a2)
  406.     lea    Text71(pc),a3
  407.     lea    Tags10(pc),a0
  408.     jsr    _LVOrtFileRequestA(a6)
  409.     tst.l    d0
  410.     beq.s    .ok19
  411.     lea    Text72(pc),a1
  412.     lea    Text73(pc),a2
  413.     lea    Array(pc),a4
  414.     move.l    filereq(pc),a0
  415.     move.l    rtfi_Dir(a0),(a4)
  416.     bra.s    .ok20
  417. .ok19
  418.     lea    Text74(pc),a1
  419.     lea    Text63(pc),a2
  420.     sub.l    a4,a4
  421. .ok20
  422.     sub.l    a3,a3
  423.     sub.l    a0,a0
  424.     jsr    _LVOrtEZRequestA(a6)
  425.     move.l    filereq(pc),a1
  426.     jsr    _LVOrtFreeRequest(a6)
  427. .ok18
  428.  
  429.     lea    Text75(pc),a1
  430.     lea    Text76(pc),a2
  431.     sub.l    a3,a3
  432.     sub.l    a4,a4
  433.     sub.l    a0,a0
  434.     jsr    _LVOrtEZRequestA(a6)
  435.  
  436.     move.l    #RT_FONTREQ,d0
  437.     sub.l    a0,a0
  438.     jsr    _LVOrtAllocRequestA(a6)
  439.     move.l    d0,fontreq
  440.     bne.s    .ok21
  441.     lea    Text58(pc),a1
  442.     lea    Text14(pc),a2
  443.     sub.l    a3,a3
  444.     sub.l    a4,a4
  445.     sub.l    a0,a0
  446.     jsr    _LVOrtEZRequestA(a6)
  447.     bra.s    .ok22
  448. .ok21
  449.     move.l    d0,a1
  450.     move.l    #FREQF_STYLE+FREQF_COLORFONTS,rtfo_Flags(a1)
  451.     lea    Text77(pc),a3
  452.     sub.l    a0,a0
  453.     jsr    _LVOrtFontRequestA(a6)
  454.     tst.l    d0
  455.     beq.s    .ok23
  456.     lea    Text78(pc),a1
  457.     lea    Text61(pc),a2
  458.     lea    Array(pc),a4
  459.     move.l    fontreq(pc),a0
  460.     move.l    rtfo_Attr+ta_Name(a0),(a4)+
  461.     moveq    #0,d0
  462.     move.w    rtfo_Attr+ta_YSize(a0),d0
  463.     move.l    d0,(a4)+
  464.     lea    Array(pc),a4
  465.     sub.l    a0,a0
  466.     bra.s    .ok24
  467. .ok23
  468.     lea    Text79(pc),a1
  469.     lea    Text80(pc),a2
  470.     sub.l    a4,a4
  471.     lea    Tags5(pc),a0
  472. .ok24
  473.     sub.l    a3,a3
  474.     jsr    _LVOrtEZRequestA(a6)
  475.     move.l    fontreq(pc),a1
  476.     jsr    _LVOrtFreeRequest(a6)
  477. .ok22
  478.  
  479.     lea    Text81(pc),a1
  480.     lea    Text46(pc),a2
  481.     sub.l    a3,a3
  482.     sub.l    a4,a4
  483.     lea    Tags5(pc),a0
  484.     jsr    _LVOrtEZRequestA(a6)
  485.  
  486.     lea    Text82(pc),a2
  487.     sub.l    a3,a3
  488.     sub.l    a0,a0
  489.     jsr    _LVOrtPaletteRequestA(a6)
  490.     cmpi.l    #-1,d0
  491.     bne.s    .ok25
  492.     lea    Text83(pc),a1
  493.     lea    Text84(pc),a2
  494.     sub.l    a4,a4
  495.     bra.s    .ok26
  496. .ok25
  497.     lea    Text85(pc),a1
  498.     lea    Text86(pc),a2
  499.     lea    Array(pc),a4
  500.     move.l    d0,(a4)
  501. .ok26
  502.     sub.l    a3,a3
  503.     jsr    _LVOrtEZRequestA(a6)
  504.  
  505.     lea    Text87(pc),a1
  506.     lea    Text88(pc),a2
  507.     sub.l    a3,a3
  508.     sub.l    a4,a4
  509.     lea    Tags5(pc),a0
  510.     jsr    _LVOrtEZRequestA(a6)
  511.  
  512.     move.l    #RT_FILEREQ,d0
  513.     sub.l    a0,a0
  514.     jsr    _LVOrtAllocRequestA(a6)
  515.     move.l    d0,filereq
  516.     bne.s    .ok27
  517.     lea    Text58(pc),a1
  518.     lea    Text14(pc),a2
  519.     sub.l    a3,a3
  520.     sub.l    a4,a4
  521.     sub.l    a0,a0
  522.     jsr    _LVOrtEZRequestA(a6)
  523.     bra.s    .ok28
  524. .ok27
  525.     move.l    d0,a1
  526.     sub.l    a2,a2
  527.     lea    Text89(pc),a3
  528.     lea    Tags11(pc),a0
  529.     jsr    _LVOrtFileRequestA(a6)
  530.     beq.s    .ok29
  531.     lea    Text90(pc),a1
  532.     lea    Text61(pc),a2
  533.     move.l    filereq(pc),a0
  534.     lea    Array(pc),a4
  535.     move.l    rtfi_Dir(a0),(a4)
  536.     bra.s    .ok30
  537. .ok29
  538.     lea    Text91(pc),a1
  539.     lea    Text92(pc),a2
  540.     sub.l    a4,a4
  541. .ok30
  542.     sub.l    a3,a3
  543.     sub.l    a0,a0
  544.     jsr    _LVOrtEZRequestA(a6)
  545.     move.l    filereq(pc),a1
  546.     jsr    _LVOrtFreeRequest(a6)
  547. .ok28
  548.  
  549.     lea    Text93(pc),a1
  550.     lea    Text46(pc),a2
  551.     sub.l    a3,a3
  552.     sub.l    a4,a4
  553.     lea    Tags5(pc),a0
  554.     jsr    _LVOrtEZRequestA(a6)
  555.  
  556.     move.l    $4.w,a5
  557.     move.l    LIB_VERSION(a5),d0
  558.     cmpi.l    #37,d0
  559.     bcc.s    .ok31
  560.     lea    Text94(pc),a1
  561.     lea    Text95(pc),a2
  562.     sub.l    a3,a3
  563.     sub.l    a4,a4
  564.     lea    Tags5(pc),a0
  565.     jsr    _LVOrtEZRequestA(a6)
  566.     bra.w    .ok32
  567. .ok31
  568.     move.l    #RT_SCREENMODEREQ,d0
  569.     sub.l    a0,a0
  570.     jsr    _LVOrtAllocRequestA(a6)
  571.     move.l    d0,scrmodereq
  572.     bne.s    .ok33
  573.     lea    Text58(pc),a1
  574.     lea    Text14(pc),a2
  575.     sub.l    a3,a3
  576.     sub.l    a4,a4
  577.     sub.l    a0,a0
  578.     jsr    _LVOrtEZRequestA(a6)
  579.     bra.s    .ok32
  580. .ok33
  581.     move.l    d0,a1
  582.     lea    Text96(pc),a3
  583.     lea    Tags12(pc),a0
  584.     jsr    _LVOrtScreenModeRequestA(a6)
  585.     tst.l    d0
  586.     beq.s    .ok37
  587.     lea    Text97(pc),a1
  588.     lea    Text61(pc),a2
  589.     lea    Array(pc),a4
  590.     move.l    scrmodereq(pc),a0
  591.     move.l    rtsc_DisplayID(a0),(a4)+
  592.     moveq    #0,d0
  593.     move.w    rtsc_DisplayWidth(a0),d0
  594.     move.l    d0,(a4)+
  595.     moveq    #0,d0
  596.     move.w    rtsc_DisplayHeight(a0),d0
  597.     move.l    d0,(a4)+
  598.     moveq    #0,d0
  599.     move.w    rtsc_DisplayDepth(a0),d0
  600.     move.l    d0,(a4)+
  601.     moveq    #0,d0
  602.     move.w    rtsc_OverscanType(a0),d0
  603.     move.l    d0,(a4)+
  604.     move.l    rtsc_AutoScroll(a0),d0
  605.     beq.s    .ok35
  606.     lea    Ontxt(pc),a0
  607.     bra.s    .ok36
  608. .ok35
  609.     lea    Offtxt(pc),a0
  610. .ok36
  611.     move.l    a0,(a4)+
  612.     lea    Array(pc),a4
  613.     sub.l    a0,a0
  614.     bra.s    .ok34
  615. .ok37
  616.     lea    Text98(pc),a1
  617.     lea    Text80(pc),a2
  618.     lea    Tags5(pc),a0
  619.     sub.l    a4,a4
  620. .ok34
  621.     sub.l    a3,a3
  622.     jsr    _LVOrtEZRequestA(a6)
  623.     move.l    scrmodereq(pc),a1
  624.     jsr    _LVOrtFreeRequest(a6)
  625. .ok32
  626.  
  627.     lea    Text99(pc),a1
  628.     lea    Text100(pc),a2
  629.     sub.l    a3,a3
  630.     sub.l    a4,a4
  631.     lea    Tags5(pc),a0
  632.     jsr    _LVOrtEZRequestA(a6)
  633.  
  634.     move.l    ReqBase(pc),a1
  635.     move.l    $4.w,a6
  636.     jsr    _LVOCloseLibrary(a6)
  637.     moveq    #0,d0
  638.     rts
  639.  
  640. NoReqtools
  641.     move.l    $4.w,a6
  642.     lea    DosLib(pc),a1
  643.     jsr    _LVOOldOpenLibrary(a6)
  644.     move.l    d0,DosBase
  645.     move.l    d0,a6
  646.     jsr    _LVOOutput(a6)
  647.     move.l    d0,d1
  648.     move.l    #NoReq,d2
  649.     move.l    #Ontxt-NoReq,d3
  650.     jsr    _LVOWrite(a6)
  651.     move.l    a6,a1
  652.     move.l    $4.w,a6
  653.     jsr    _LVOCloseLibrary(a6)
  654.     moveq    #0,d0
  655.     rts
  656.  
  657. NoReq
  658.     dc.b    "You need reqtools.library V38 or higher!",10
  659.     dc.b    "Please install it in your Libs: directory.",10,0
  660. Ontxt
  661.     dc.b    "On",0
  662. Offtxt
  663.     dc.b    "Off",0
  664. Text1
  665.     dc.b    "Reqtools 2.0 Demo",10
  666.     dc.b    "~~~~~~~~~~~~~~~~~",10
  667.     dc.b    "'reqtools.library' offers several",10
  668.     dc.b    "different types of requesters:",0
  669. Text2
  670.     dc.b    "Let's see them",0
  671. Text3
  672.     dc.b    "NUMBER 1:",10,"The larch :-)",0
  673. Text4
  674.     dc.b    "Be serious!",0
  675. Text5
  676.     dc.b    "NUMBER 1:",10,"String requester",10
  677.     dc.b    "function: rtGetString()",0
  678. Text6
  679.     dc.b    "Show me",0
  680. Text7
  681.     dc.b    "A bit of text",0
  682. Text8
  683.     dc.b    "Enter anything:",0
  684. Text9
  685.     dc.b    "You entered nothing :-(",0
  686. Text10
  687.     dc.b    "I'm sorry",0
  688. Text11
  689.     dc.b    "You entered this string:",10,"%s",0
  690. Text12
  691.     dc.b    "So I did",0
  692. Text13
  693.     dc.b    "Yep, this is a new",10
  694.     dc.b    "ReqTools 2.0 feature!",0
  695. Text14
  696.     dc.b    "Oh boy!",0
  697. Text15
  698.     dc.b    "What!! You pressed abort!?!",10
  699.     dc.b    "You must be joking :-)",0
  700. Text16
  701.     dc.b    "Ok, Continue",0
  702. Text17
  703.     dc.b    "NUMBER 2:",10
  704.     dc.b    "Number requester",10
  705.     dc.b    "function: rtGetLong()",0
  706. Text18
  707.     dc.b    "Enter a number:",0
  708. Text19
  709.     dc.b    "The number you entered was:",10,"%ld%s",0
  710. Text20
  711.     dc.b    "So it was",0
  712. Text21
  713.     dc.b    " (you devil! :)",0
  714. Text22
  715.     dc.b    "NUMBER 3:",10
  716.     dc.b    "Message requester, the requester",10
  717.     dc.b    "you've been using all the time!",10
  718.     dc.b    "function: rtEZRequestA()",0
  719. Text23
  720.     dc.b    "Show me more",0
  721. Text24
  722.     dc.b    "Simplest usage: some body text and",10
  723.     dc.b    "a single centered gadget.",0
  724. Text25
  725.     dc.b    "Got it",0
  726. Text26
  727.     dc.b    "You can also use two gadgets to",10
  728.     dc.b    "ask the user something.",10
  729.     dc.b    "Do you understand?",0
  730. Text27
  731.     dc.b    "Of course|Not really",0
  732. Text28
  733.     dc.b    "You are not one of the brightest are you?",10
  734.     dc.b    "We'll try again...",0
  735. Text29
  736.     dc.b    "Ok",0
  737. Text30
  738.     dc.b    "Great, we'll continue then.",0
  739. Text31
  740.     dc.b    "Fine",0
  741. Text32
  742.     dc.b    "You can also put up a requester with",10
  743.     dc.b    "three choices.",10
  744.     dc.b    "How do you like the demo so far ?",0
  745. Text33
  746.     dc.b    "Great|So so|Rubbish",0
  747. Text34
  748.     dc.b    "Too bad, I really hoped you",10
  749.     dc.b    "would like it better.",0
  750. Text35
  751.     dc.b    "So what",0
  752. Text36
  753.     dc.b    "I'm glad you like it so much.",0
  754. Text37
  755.     dc.b    "Maybe if you run the demo again",10
  756.     dc.b    "you'll REALLY like it.",0
  757. Text38
  758.     dc.b    "Perhaps",0
  759. Text39
  760.     dc.b    "The number of responses is not limited to three",10
  761.     dc.b    "as you can see.  The gadgets are labeled with",10
  762.     dc.b    "the return code from rtEZRequestA().",10
  763.     dc.b    "Pressing Return will choose 4, note that",10
  764.     dc.b    "4's button text is printed in boldface.",0
  765. Text40
  766.     dc.b    "1|2|3|4|5|0",0
  767. Text41
  768.     dc.b    "You picked '%ld'.",0
  769. Text42
  770.     dc.b    "How true",0
  771. Text43
  772.     dc.b    "New for Release 2.0 of ReqTools (V38) is",10
  773.     dc.b    "the possibility to define characters in the",10
  774.     dc.b    "buttons as keyboard shortcuts.",10
  775.     dc.b    "As you can see these characters are underlined.",10
  776.     dc.b    "Pressing shift while still holding down the key",10
  777.     dc.b    "will cancel the shortcut.",10
  778.     dc.b    "Note that in other requesters a string gadget may",10
  779.     dc.b    "be active.  To use the keyboard shortcuts there",10
  780.     dc.b    "you have to keep the Right Amiga key pressed down.",0
  781. Text44
  782.     dc.b    "_Great|_Fantastic|_Swell|Oh _Boy",0
  783. Text45
  784.     dc.b    "You may also use C-style formatting codes in the body text.",10
  785.     dc.b    "Like this:",10,10
  786.     dc.b    "'The number %%ld is written %%s.' will give:",10,10
  787.     dc.b    "The number %ld is written %s.",10,10
  788.     dc.b    "if you also pass '5' and '",'"five"',"' to rtEZRequestA().",0
  789. Text46
  790.     dc.b    "_Proceed",0
  791. Text47
  792.     dc.b    "It is also possible to pass extra IDCMP flags",10
  793.     dc.b    "that will satisfy rtEZRequestA(). This requester",10
  794.     dc.b    "has had DISKINSERTED passed to it.",10
  795.     dc.b    "(Try inserting a disk).",0
  796. Text48
  797.     dc.b    "_Continue",0
  798. Text49
  799.     dc.b    "You inserted a disk.",0
  800. Text50
  801.     dc.b    "You used the 'Continue' gadget",10
  802.     dc.b    "to satisfy the requester.",0
  803. Text51
  804.     dc.b    "I did",0
  805. Text52
  806.     dc.b    "Finally, it is possible to specify the position",10
  807.     dc.b    "of the requester.",10
  808.     dc.b    "E.g. at the top left of the screen, like this.",10
  809.     dc.b    "This works for all requesters, not just rtEZRequestA()!",0
  810. Text53
  811.     dc.b    "_Amazing",0
  812. Text54
  813.     dc.b    "Alternatively, you can center the",10
  814.     dc.b    "requester on the screen.",10
  815.     dc.b    "Check out 'reqtools.doc' for all the possibilities.",0
  816. Text55
  817.     dc.b    "I'll do that",0
  818. Text56
  819.     dc.b    "NUMBER 4:",10
  820.     dc.b    "function: rtFileRequestA()",0
  821. Text57
  822.     dc.b    "_Demonstrate",0
  823. Text58
  824.     dc.b    "Out of memory!",0
  825. Text59
  826.     dc.b    "Pick a file",0
  827. Text60
  828.     dc.b    "You picked the file:",10,"'%s'",10
  829.     dc.b    "in directory:",10,"'%s'",0
  830. Text61
  831.     dc.b    "Right",0
  832. Text62
  833.     dc.b    "You didn't pick a file.",0
  834. Text63
  835.     dc.b    "No",0
  836. Text64
  837.     dc.b    "The file requester has the ability",10
  838.     dc.b    "to allow you to pick more than one",10
  839.     dc.b    "file (use Shift to extend-select).",10
  840.     dc.b    "Note the extra gadgets you get.",0
  841. Text65
  842.     dc.b    "_Interesting",0
  843. Text66
  844.     dc.b    "Pick some files",0
  845. Text67
  846.     dc.b    "You selected some files, this is",10
  847.     dc.b    "the first one:",10,"'%s'",10
  848.     dc.b    "All the files are returned as a linked",10
  849.     dc.b    "list (see demo.s and reqtools.i).",0
  850. Text68
  851.     dc.b    "Aha",0
  852. Text69
  853.     dc.b    "The file requester can be used",10
  854.     dc.b    "as a directory requester as well.",0
  855. Text70
  856.     dc.b    "Let's _see that",0
  857. Text71
  858.     dc.b    "Pick a directory",0
  859. Text72
  860.     dc.b    "You picked the directory:",10,"'%s'",0
  861. Text73
  862.     dc.b    "Right",0
  863. Text74
  864.     dc.b    "You didn't pick a directory.",0
  865. Text75
  866.     dc.b    "NUMBER 5:",10
  867.     dc.b    "Font requester",0
  868. Text76
  869.     dc.b    "Show",0
  870. Text77
  871.     dc.b    "Pick a font",0
  872. Text78
  873.     dc.b    "You picked the font:",10,"'%s'",10
  874.     dc.b    "with size:",10,"'%ld'",0
  875. Text79
  876.     dc.b    "You canceled.",10
  877.     dc.b    "Was there no font you liked ?",0
  878. Text80
  879.     dc.b    "_Nope",0
  880. Text81
  881.     dc.b    "NUMBER 6:",10
  882.     dc.b    "Palette requester",10
  883.     dc.b    "function: rtPaletteRequestA()",0
  884. Text82
  885.     dc.b    "Change palette",0
  886. Text83
  887.     dc.b    "You canceled.",10
  888.     dc.b    "No nice colors to be picked ?",0
  889. Text84
  890.     dc.b    "Nah",0
  891. Text85
  892.     dc.b    "You picked color number %ld.",0
  893. Text86
  894.     dc.b    "Sure did",0
  895. Text87
  896.     dc.b    "NUMBER 7: (ReqTools 2.0)",10
  897.     dc.b    "Volume requester",10
  898.     dc.b    "function: rtFileRequestA() with",10
  899.     dc.b    "          RTFI_VolumeRequest tag.",0
  900. Text88
  901.     dc.b    "_Show me",0
  902. Text89
  903.     dc.b    "Pick a volume",0
  904. Text90
  905.     dc.b    "You picked the volume:",10,"'%s'",0
  906. Text91
  907.     dc.b    "You didn't pick a volume.",0
  908. Text92
  909.     dc.b    "I did not",0
  910. Text93
  911.     dc.b    "NUMBER 8: (ReqTools 2.0)",10
  912.     dc.b    "Screen mode requester",10
  913.     dc.b    "function: rtScreenModeRequestA()",10
  914.     dc.b    "Only available on Kickstart 2.0!",0
  915. Text94
  916.     dc.b    "Your Amiga doesn't seem to have",10
  917.     dc.b    "Kickstart 2.0 in ROM so I am not",10
  918.     dc.b    "able to show you the Screen mode",10
  919.     dc.b    "requester.",10
  920.     dc.b    "So upgrade to 2.0 *now* :-)",0
  921. Text95
  922.     dc.b    "_Allright",0
  923. Text96
  924.     dc.b    "Pick a screen mode:",0
  925. Text97
  926.     dc.b    "You picked this mode:",10
  927.     dc.b    "ModeID  : 0x%lx",10
  928.     dc.b    "Size    : %ld x %ld",10
  929.     dc.b    "Depth   : %ld",10
  930.     dc.b    "Overscan: %ld",10
  931.     dc.b    "AutoScroll %s",0
  932. Text98
  933.     dc.b    "You didn't pick a screen mode.",0
  934. Text99
  935.     dc.b    "That's it!",10
  936.     dc.b    "Hope you enjoyed the demo",0
  937. Text100
  938.     dc.b    "_Sure did",0
  939. TagText1
  940.     dc.b    " _Ok |New _2.0 feature!|_Cancel",0
  941. TagText2
  942.     dc.b    "These are two new features of ReqTools 2.0:",10
  943.     dc.b    "Text above the entry gadget and more than",10
  944.     dc.b    "one response gadget.",0
  945. TagText3
  946.     dc.b    " _Ok |_Abort|_Cancel",0
  947. TagText4
  948.     dc.b    "New is also the ability to switch off the",10
  949.     dc.b    "backfill pattern.  You can also center the",10
  950.     dc.b    "text above the entry gadget.",10
  951.     dc.b    "These new features are also available in",10
  952.     dc.b    "the rtGetLong() requester.",0
  953.  
  954.     cnop    0,2
  955. Tags1
  956.     dc.l    RTGS_GadFmt,TagText1
  957.     dc.l    RTGS_TextFmt,TagText2
  958.     dc.l    TAG_MORE,undertag
  959.     dc.l    TAG_END
  960. Tags2
  961.     dc.l    RTGS_GadFmt,TagText3
  962.     dc.l    RTGS_TextFmt,TagText4
  963.     dc.l    RTGS_BackFill,FALSE
  964.     dc.l    RTGS_Flags,GSREQF_CENTERTEXT+GSREQF_HIGHLIGHTTEXT
  965.     dc.l    TAG_MORE,undertag
  966.     dc.l    TAG_END
  967. Tags3
  968.     dc.l    RTGL_ShowDefault,FALSE
  969.     dc.l    RTGL_Min,0
  970.     dc.l    RTGL_Max,666
  971.     dc.l    TAG_END
  972. Tags4
  973.     dc.l    RTEZ_DefaultResponse,4
  974.     dc.l    TAG_END
  975. Tags6
  976.     dc.l    RT_IDCMPFlags,DISKINSERTED
  977. Tags5
  978.     dc.l    RT_Underscore,'_'
  979.     dc.l    TAG_END
  980. Tags7
  981.     dc.l    RT_ReqPos,REQPOS_TOPLEFTSCR
  982.     dc.l    RT_Underscore,'_'
  983.     dc.l    TAG_END
  984. Tags8
  985.     dc.l    RT_ReqPos,REQPOS_CENTERSCR
  986.     dc.l    TAG_END
  987. Tags9
  988.     dc.l    RTFI_Flags,FREQF_MULTISELECT
  989.     dc.l    TAG_END
  990. Tags10
  991.     dc.l    RTFI_Flags,FREQF_NOFILES
  992.     dc.l    TAG_END
  993. Tags11
  994.     dc.l    RTFI_VolumeRequest,0
  995.     dc.l    TAG_END
  996. Tags12
  997.     dc.l    RTSC_Flags,SCREQF_DEPTHGAD+SCREQF_SIZEGADS+SCREQF_AUTOSCROLLGAD+SCREQF_OVERSCANGAD
  998.     dc.l    TAG_END
  999. undertag
  1000.     dc.l    RT_Underscore,'_'
  1001. DosLib
  1002.     dc.b    "dos.library",0
  1003. ReqName
  1004.     REQTOOLSNAME
  1005.     cnop    0,2
  1006. Null
  1007.     dc.l    0
  1008. DosBase
  1009.     ds.l    1
  1010. ReqBase
  1011.     ds.l    1
  1012. Buffer
  1013.     ds.b    128
  1014. Array
  1015.     ds.l    6
  1016. LongNum
  1017.     ds.l    1
  1018. filereq
  1019.     ds.l    1
  1020. flist
  1021.     ds.l    1
  1022. fontreq
  1023.     ds.l    1
  1024. scrmodereq
  1025.     ds.l    1
  1026. filename
  1027.     ds.b    34
  1028.  
  1029.     END
  1030.